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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
5 n0 ^& P' r% m& z, j+ i4 b# i; E#include <linux/init.h>7 D- ]& w8 Q6 N, x& H  {8 I& v/ y! R% u
#include <linux/module.h>
4 }! j/ R' `, `' i. r7 c#include <linux/kernel.h>
3 [$ _/ N# ~! {6 i#include <linux/types.h>& N4 R& z# Y! H. o
#include <linux/gpio.h>  `+ j! D# L3 T; k# w+ O" o
#include <linux/leds.h>, `8 x2 c& e0 ], R
#include <linux/platform_device.h>
5 ]0 i. T* f; j  @- ?& ^& o7 S/ j
#include <asm/mach-types.h>
  x$ T3 V) Z( j3 a- S#include <asm/mach/arch.h>
; [" i9 @( X" X& c; L' O8 O#include <mach/da8xx.h>' K) F1 q$ ?5 J2 r% z: c6 Z
#include <mach/mux.h>
- |$ l. ?/ X" ?. s; g7 }2 q6 S7 y0 h! N4 w
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
: @( y; m* @; `  G#define DA850_USER_LED1        GPIO_TO_PIN(0, 5). M2 ?. G3 K# E3 y: l
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)# r1 s! _+ z; n: W
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
" h4 D2 Y0 R" C# u' D+ p4 u/ A: l( a# S9 G; h& `4 d8 k6 n' a/ d% z; A
/* assign the tl som board LED-GPIOs*/  [5 @$ H, R0 u2 L: E/ Z6 [0 {
static const short da850_evm_tl_user_led_pins[] = {
5 }! B/ F) S. {7 G7 V1 r        /* These pins are definition at <mach/mux.h> file */
9 h6 F5 G+ x% K3 f0 ~8 D        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; x: a7 N. M: c! n9 r
        -1
4 p% F# i9 j: t( G};. c3 ]2 @2 ?) z1 o, b- w% g6 P

- Y, ^! e, F7 Sstatic struct gpio_led da850_evm_tl_leds[] = {% L+ G0 ~+ {6 z0 G! L. w
        {6 l: r9 Z: s& P$ J
                .active_low = 0,1 h9 \6 L- ]5 H+ h, o. @# a' Y% J
                .gpio = DA850_USER_LED0,
2 Y2 z( j: \2 v; I                .name = "user_led0",
' r/ W  l! l: g! ~                .default_trigger = "default-on",
% a7 I( m- u0 q- g% [! P7 L        },
* c; _' L, s! f        {
( A& Y$ @" O$ B" Y; w8 [2 {                .active_low = 0,
7 U& Y4 k& h. X  M) Z; x* ]- y                .gpio = DA850_USER_LED1,4 M# l; H9 B( H1 i( v
                .name = "user_led1",4 K% k. \& z5 Q8 D) B
                .default_trigger = "default-on",
5 v! m) p: A# ?  o% B3 e        },
& N. m3 O; C, q2 E* G        {9 q6 W. P( @, u" K' m/ n  e+ g. x3 P
                .active_low = 0,5 K; _( C& p& X$ w, @1 b. K
                .gpio = DA850_USER_LED2,1 ]9 {( X$ `; U# T- C5 x
                .name = "user_led2",
1 J4 O1 @8 u  _. h( \1 @4 n' e" {) n; }                .default_trigger = "default-on",
; O5 u# g& G. b8 i7 T        },
6 z- j& @. D) i0 `" L        {
7 J1 v' j2 @7 x; u0 U                .active_low = 0,
7 Y* z1 g. d9 O" m$ s; ]1 d                .gpio = DA850_USER_LED3,: k* @% W8 H9 O- A
                .name = "user_led3",
5 I! w# B, g* U( W3 B. B                .default_trigger = "default-on",' J# q- q( o1 o8 X: k
        },1 r9 B$ J- e: e) i+ v0 E
};. i$ h* J2 y/ |! |5 F8 |6 V

9 Q  c. a# K+ _5 K: Y; s; L/ Nstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
- d6 g. P* Y& h  L/ n6 N% L        .leds = da850_evm_tl_leds,
9 ?0 L' f9 u6 e2 x# H, {        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, ~1 \% J0 Y- J$ y0 y! I& b% V3 w};5 Y. P5 _8 f, o8 z* `

1 Z; b) t3 Z# G" m1 S* astatic void led_dev_release(struct device *dev)8 L8 c7 L7 O' C7 [1 e
{
" x0 H5 U7 A1 t4 U. u};7 D8 j* V+ Q% r) _% m, B+ E5 W

3 J0 N9 p8 d+ X5 Y* Sstatic struct platform_device da850_evm_tl_leds_device = {
8 W8 ]/ z  ^  l% k0 `0 b: Y        .name                = "leds-gpio",1 Z, X4 \1 U2 O7 R' s
        .id                = 1,
; O$ K5 s' A+ d3 F        .dev = {" `9 I6 f% n9 T1 v  O; j
                .platform_data = &da850_evm_tl_leds_pdata,
8 ~$ R( s: F: V0 l; u                .release = led_dev_release,
& ?- x; w5 m* K; R8 p        }: v2 s0 q4 ~. V  [! c
};5 C) O9 R4 m8 s

; o& d/ t7 I4 y1 x  t! ~, e: Gstatic int __init led_platform_init(void)
7 @2 u+ Y, a- B$ H0 E# z7 N{
! z% x4 Y0 J+ V0 @" {        int ret;: u' _+ r! h1 ^) M
#if 0( ~1 T" b; _. F' Z+ L
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
4 j" j! ~$ c( B3 g        if (ret)
. l# j7 S( R$ I/ i2 v. ~% P! Z                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
+ ~  ~1 E( X9 h6 s9 K                                "%d\n", ret);* g. `6 p, @9 X7 t" c+ P1 j
#endif+ T$ Z% V( l5 ?) p+ b; W
        ret = platform_device_register(&da850_evm_tl_leds_device);3 b' ]* ]0 q5 T; a0 O
        if (ret)
+ N) P2 o! A6 f) S) @9 o6 O                pr_warning("Could not register som GPIO expander LEDS");' c6 j: w" m; H6 d; D" d, F
        else
& `/ Z" Z$ ]* ^7 s7 k& H                printk(KERN_INFO "LED register sucessful!\n");- D0 T* P( X* K# z' D1 u! d; E2 A/ R, u, b
- ]0 n% c7 Y3 ]. S. d6 l
        return ret;
0 n( G' S1 S' J; N! K}
2 Y  m5 u; T: v3 p
+ g2 d7 @* ~: i0 O- A. v* wstatic void __exit led_platform_exit(void)  _: Y9 L( m$ H! a3 f0 T+ C
{
- `7 H& B/ d1 M: n  ]" U        platform_device_unregister(&da850_evm_tl_leds_device);
. \& `& |( S  c2 }/ k: c" e3 |* D& V
5 B. F0 p: U. I' v4 f5 [: l        printk(KERN_INFO "LED unregister!\n");
* X% s2 r4 y) r" E' D}
2 ?! ^0 L1 W7 M9 U6 h4 |
! c, Z5 z4 o4 W* t9 D, \module_init(led_platform_init);
' l0 R  `7 E& F$ X+ Amodule_exit(led_platform_exit);) }3 E- e3 w9 E, k: B
* J$ F+ O$ @: {0 O" C
MODULE_DESCRIPTION("Led platform driver");
: \/ D& R0 f; t% WMODULE_AUTHOR("Tronlong");4 q4 i+ h; s5 P; ~
MODULE_LICENSE("GPL");
0 {6 L- g& L: q+ C/ z
8 `8 Z/ S6 L8 y9 e: \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-7 05:38 , Processed in 0.044333 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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