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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
4 S. n$ A! q3 R2 A7 n3 Z) H#include <linux/init.h>& M1 w5 A4 M! v
#include <linux/module.h>
$ I; _! C5 Q$ W) g#include <linux/kernel.h>
5 R4 d6 _0 @: P- X4 N# @8 i/ v! \( \#include <linux/types.h>
' v% x; y" U5 `2 u% t#include <linux/gpio.h>
( S: H$ R! k" F* R0 x#include <linux/leds.h>6 H0 }3 U5 V0 O* r
#include <linux/platform_device.h>; l" u9 Y* k5 c/ F( n3 E" r

  j; u$ e: z" Y1 A5 L, O* u0 }#include <asm/mach-types.h>9 T+ A5 Z( M% E. @
#include <asm/mach/arch.h>; k9 O; G/ N2 u  \9 Y- c$ a
#include <mach/da8xx.h>1 ~6 n) Q8 }7 J& x0 M
#include <mach/mux.h>" ~* W, r% j- t7 }& }+ A& |

2 B& m5 S/ U; d#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
4 [1 v0 {( d4 ~$ k& Y#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)& z" w2 I( B8 e" |
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
1 @' \8 D& U) U: ?#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
' S4 y" z, H! M1 c, c5 k5 C# R* i, Q
& ^* X1 s' g) ?" Z: n8 b0 R1 I5 s/* assign the tl som board LED-GPIOs*/0 [/ r* }: l0 _0 [8 g
static const short da850_evm_tl_user_led_pins[] = {& B1 A' X* O" {3 D
        /* These pins are definition at <mach/mux.h> file */
! Q1 P. v  r! l        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
2 {% j) d5 o7 N2 R        -1
! G$ ^* V( h+ Z0 w5 g' t0 X& O};# u1 w% U4 Q% v& P! J# ~# P
) ~+ A; n  y; A" Q
static struct gpio_led da850_evm_tl_leds[] = {
6 I  O6 \, x/ Q2 L        {
/ n3 I5 Y# ~2 V6 J5 v$ ]                .active_low = 0,# a' I$ I! |. k8 K
                .gpio = DA850_USER_LED0,
) c$ @; N  `" l  U, I9 [* I                .name = "user_led0",
0 C. j+ U9 v! y2 i/ u                .default_trigger = "default-on",5 H7 u0 j" g6 \. }" Y8 J- B
        },
; \* f2 d9 }! n" Z9 i; \. w        {4 z% r$ b2 V' z6 W
                .active_low = 0,! {* x! [0 p; b3 [  g7 m
                .gpio = DA850_USER_LED1,
" ~! ~; I% O; Y& E; o- v                .name = "user_led1",
) X) A# N( X6 H0 R, w! o" @2 O                .default_trigger = "default-on",
6 ~$ b' p  N! F        },$ {* ~. o& n, P2 q& v9 I
        {2 _% ]: X# t# r8 q
                .active_low = 0,
* K, {- D5 |/ H1 e8 Q# O9 A1 d8 p. R                .gpio = DA850_USER_LED2,
) j* I: Y" `& E4 t                .name = "user_led2",6 A0 c, S8 q2 N% i: H
                .default_trigger = "default-on",
8 m3 w0 p# \- E, `3 a. h2 i        },
( T9 C3 N+ m/ j: e6 Y5 T4 A5 ^. S, i9 Y        {
: `. l  @7 ?; \: [" b                .active_low = 0,
+ u7 u5 c6 A6 W0 z, `                .gpio = DA850_USER_LED3,
9 J! W: o2 M- ]9 w2 w! U                .name = "user_led3",9 a: ?( P/ H& r6 a$ Q6 n' o
                .default_trigger = "default-on",2 Q5 c9 X# N/ f8 r' s
        },
, v) |$ E1 z$ i0 x};$ r8 m2 {/ l8 O4 H0 q: p
2 T* a2 q; V: }$ @3 @
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {$ n8 ~) e  N. T+ |# P- f1 d" d
        .leds = da850_evm_tl_leds,
1 z* Y! C' S! }/ {% K        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),/ Y2 P/ u2 b+ D/ T
};6 Q4 v% `) Y. m- K1 b! F

  H1 j  {0 H# ]" s* _static void led_dev_release(struct device *dev)5 z4 X8 C: x6 M. R
{: X  O! s/ v+ A. S% |5 E- w
};
  y2 |6 p3 ]" ?$ c( V, E) K. @
3 |- t4 X2 I0 y7 [; z3 u$ hstatic struct platform_device da850_evm_tl_leds_device = {
% i- \1 Q. N: Q1 T5 k+ v7 e        .name                = "leds-gpio",
7 j$ B, i: y# {4 P4 ?6 _: M2 a+ N/ o+ m        .id                = 1,
. @' }. u; ?( A! \- U2 U3 r1 q0 b        .dev = {
- Y& d  n0 d- W" x3 w9 T- T                .platform_data = &da850_evm_tl_leds_pdata,- J( z- f' |- n+ [) e- V+ W
                .release = led_dev_release,
# d. U" Z0 C3 C6 h5 ~6 o0 Y$ Y1 X        }
& D% F* d; f! z5 G5 U  W' O) A};/ j% r7 R# w/ \+ N6 ]

7 c/ e; c  l! z  S3 Bstatic int __init led_platform_init(void)
3 j, ~, ~  p% r$ Z1 [$ w3 E{
" ?/ R9 o0 g$ J0 M7 [( _3 j        int ret;
7 W: R' D  f  L2 B#if 0
4 n' O% P9 C: F7 x% e+ e  l        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! j+ ^8 y$ R, a
        if (ret)
: r7 b' i% H# d9 v4 t5 [                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"2 X, h& I% V2 T* c
                                "%d\n", ret);9 r# [3 G& H) @. O/ O3 c6 o/ k
#endif
* E, B6 o& j- C$ i+ I( v        ret = platform_device_register(&da850_evm_tl_leds_device);6 G/ F7 P! e9 {, x: K/ F  l& i
        if (ret)  {+ b8 q5 z2 \3 a( l, {0 {! W. Z
                pr_warning("Could not register som GPIO expander LEDS");
; G1 p- ^# C* N6 y" a2 y3 |6 Q# w        else
% m/ W4 w  a9 ^8 Y$ r                printk(KERN_INFO "LED register sucessful!\n");
  ^) P. l' U$ K: X
2 c/ ~3 h$ s' G6 z        return ret;
/ m, M# \+ [6 z* h7 a5 @}
6 n/ k  s5 V, T' h* x8 C
5 m) q6 c7 n& F9 v- Tstatic void __exit led_platform_exit(void)
' X- n: J: s2 M$ \. T/ V7 W& I6 V{
+ |! w& |, x& o' s        platform_device_unregister(&da850_evm_tl_leds_device);, a. h- N; z, r& o3 B* x! P: u; Q

6 j; L2 \, D3 u! y8 g% A        printk(KERN_INFO "LED unregister!\n");8 t+ J. O; Y8 b' h+ s& I$ p
}, `( _" {) H" I* n9 m2 W* |$ s

) {* I' i( u* E+ Smodule_init(led_platform_init);
! z% ]' W  z0 s9 [1 e" |/ Amodule_exit(led_platform_exit);
7 y* {; b9 h2 Z% W8 [/ S
0 k! t9 V  b3 d( r  f2 i" jMODULE_DESCRIPTION("Led platform driver");
9 b; T% \6 V- I7 _* jMODULE_AUTHOR("Tronlong");
" a- j3 P8 m1 j8 fMODULE_LICENSE("GPL");. e5 ?% p2 |  q" e

* O3 ~5 a3 m9 B/ a& |* q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-6 12:08 , Processed in 0.045773 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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