程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10528|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
$ |& r5 m1 A# I#include <linux/init.h>
& e8 T5 q1 Q+ M3 V#include <linux/module.h>9 M$ t) B3 e, @) `5 B! a
#include <linux/kernel.h>
  d& Y' a" x1 q' q7 Y#include <linux/types.h>
) V2 K  v9 S' B4 u3 u5 ^#include <linux/gpio.h>/ b8 g3 ?1 [- ~/ L- W2 Q
#include <linux/leds.h># Y3 ~1 g3 _2 _: N. d. c
#include <linux/platform_device.h>$ z% X6 z6 {/ q' A  L
% {: G7 K; w" L  j
#include <asm/mach-types.h>8 L* A' ?) P, g% n( y3 y6 Z! C
#include <asm/mach/arch.h>, ]) \4 O4 a" x$ s
#include <mach/da8xx.h>, J. N1 {9 d$ }) b0 E: Z8 _  p
#include <mach/mux.h>
% k0 T4 X' z7 d/ S- E- t+ F8 L5 Z. p  W& h3 }, |
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)( s  o/ u. R5 j9 z' _
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
3 u$ \/ W5 L$ J2 L" z$ X#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
" Z6 q* A+ h, @; y% [. D# K7 {#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)7 Q2 V  n7 [: _9 [* f' V* |

( T; C+ q  W1 b% @, _/* assign the tl som board LED-GPIOs*/
' v1 b1 ]  N' c0 C+ U% h% ostatic const short da850_evm_tl_user_led_pins[] = {
( G5 ]. j& F6 T        /* These pins are definition at <mach/mux.h> file */* d& s- _2 t# H0 y) y
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
9 x: U7 m' @+ I+ q, a        -1
* O1 a6 Q5 x( r% Y# ]};8 v& W( G2 l2 ?& N) S  Q5 C2 u. S

! u3 w2 U4 Y1 \5 o, i5 f7 a  {# qstatic struct gpio_led da850_evm_tl_leds[] = {
; v. `  A* L$ \! f* B        {
$ d4 k3 ^1 @5 a! H( O                .active_low = 0," l  L. @2 v! n" _
                .gpio = DA850_USER_LED0,
1 l) @7 P- h0 j                .name = "user_led0",3 r2 B3 ]$ B* R2 P% P+ g3 d! `: A
                .default_trigger = "default-on",8 c7 N/ ^( u; V( N$ d/ q# r
        },8 A+ U5 S2 K9 e/ u9 P
        {1 n- J6 N* U6 k8 Q( p
                .active_low = 0,
' I5 h- c! Z; V- \                .gpio = DA850_USER_LED1,
- `0 G2 o, I4 Y% R% c                .name = "user_led1",
2 j9 g$ i/ S7 j/ X) k" e                .default_trigger = "default-on",! N% o6 u9 k8 G, C. @2 U! H& c4 I
        },
4 E+ ?5 ?8 @9 b/ e        {
# W7 U. ]3 {0 p: e                .active_low = 0,3 B2 ]$ X3 x* T& y+ H& V
                .gpio = DA850_USER_LED2,1 e( L/ @. t7 m+ d) V3 K1 e' M# y& }, ^
                .name = "user_led2",: a8 o* Y$ U) J5 b
                .default_trigger = "default-on",
' @: u  x6 n  ?& C, w3 W        },, n1 s; G; F9 [/ f! l7 z2 X' K/ @7 y
        {* N+ v! A+ j+ X* y
                .active_low = 0,
$ j  Y' v1 i( H- ^7 j3 v  s                .gpio = DA850_USER_LED3,
1 T" {) w. l+ M5 z( P" l/ P                .name = "user_led3",
( M9 g! x  J, e1 T0 k                .default_trigger = "default-on",4 U  x4 p9 H6 A8 z( `
        },
1 ~+ y; H) n1 _! ]1 J3 X5 u  E};: u5 ~" Q, k7 e- {+ L$ u( W! f

8 ~1 \7 j% K! ~static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
- w6 z5 f4 T  S6 a8 v8 U( g7 ^        .leds = da850_evm_tl_leds,0 V  }& U9 X" p
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 G3 s' t" }% A% t};
  C  a: j- F) F' a6 W
8 C3 K2 f* Q- {1 x) [) Hstatic void led_dev_release(struct device *dev)
: {0 X/ k) `, H# r% o5 r/ ^{  ^5 ]( u/ M) L: |. `# v
};
! k8 Q8 s9 A5 `! E8 z5 S! Z- |' K7 Z
static struct platform_device da850_evm_tl_leds_device = {9 x" J& S) h7 K' d, G$ }! g7 R
        .name                = "leds-gpio",% o$ z1 E; w; U- C( C
        .id                = 1,2 z' v9 X# ^/ L: q
        .dev = {
1 N8 ?1 a$ f/ b# J9 K/ m                .platform_data = &da850_evm_tl_leds_pdata,. p! e3 ]; Z, O5 Y
                .release = led_dev_release,
3 Q2 o, Y+ c1 n% @, j* S        }
' B/ q/ l  l  c6 W};+ }# o* D0 Q* o
3 j% {9 W$ t  T
static int __init led_platform_init(void)
8 }% v& T1 h4 U2 M8 @8 J5 R{
) C+ }; G( ^! F$ c        int ret;
; x$ c. @7 N5 M; L/ ?! J#if 0
) O2 O. Z: _8 D: {3 x! N        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);# u0 ]4 [3 S' u9 m) B* F
        if (ret)
9 m9 p' j. \; ~                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
6 `4 P: P/ N, g                                "%d\n", ret);
! a8 p$ Y; a2 Z2 b/ ]4 k#endif2 c* O5 V5 e; q$ U" v
        ret = platform_device_register(&da850_evm_tl_leds_device);; B  P5 z' M* C- I* M: ~& \
        if (ret)7 z! B& {" i) h3 D
                pr_warning("Could not register som GPIO expander LEDS");; n5 A4 w! M/ D
        else
; f: D9 e3 K- d- e, e) z( J& S                printk(KERN_INFO "LED register sucessful!\n");  B) V1 N6 A" R" a

5 I# D5 o3 F* D1 }' v9 n; q        return ret;
& j* ~' l0 \7 [1 f( z8 G0 L}
: J4 I' t: _, s; x) I, M! r' t  r
static void __exit led_platform_exit(void)  l  a& E* T7 d/ `& }; f
{" {+ D! j) p3 S2 q# C* R8 y- t
        platform_device_unregister(&da850_evm_tl_leds_device);1 O  C. C  P( v: j. a+ ~
' f, y2 ?" a2 v, G- W& S
        printk(KERN_INFO "LED unregister!\n");* ^- K. l4 z" u, K
}3 P* j. D, a8 r+ H+ C- [9 @# S
$ Y  h2 Z# B2 |$ |$ U! O; l
module_init(led_platform_init);
/ z- ?2 l3 X( q- S1 r6 umodule_exit(led_platform_exit);$ A: D' [, v% v5 m( b+ L$ ~$ p

/ p+ t) G) T" e- n# U/ oMODULE_DESCRIPTION("Led platform driver");9 J: P- A" r. y0 g3 E' w9 o# I
MODULE_AUTHOR("Tronlong");4 X6 \) ]; N$ |
MODULE_LICENSE("GPL");' c$ A3 ^% S+ E' Y* S7 `

3 l5 j. C7 A' ]' f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-3-17 02:35 , Processed in 0.041798 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表