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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。; f3 C! b2 c. n5 j
#include <linux/init.h>
7 t7 G0 X# {  K, ?5 e9 z' Q- j#include <linux/module.h>" }! P8 i0 I- \
#include <linux/kernel.h>+ k# ^' N; E5 m8 @; x4 q
#include <linux/types.h>/ D4 [" ~, y+ J5 U( T( [0 w( e
#include <linux/gpio.h>
) D% A1 j* U$ g8 `$ C1 u9 d. ]! ^#include <linux/leds.h>- i) D# z  I5 x# a
#include <linux/platform_device.h>
6 Z# o$ A# O5 D3 j  h( @( t3 R
#include <asm/mach-types.h>5 E0 _! l! \% [/ o) \
#include <asm/mach/arch.h>" I. i) `5 L. B% O
#include <mach/da8xx.h>6 ^4 u7 n6 L9 F, j9 g
#include <mach/mux.h>
# Q2 q  {& V. X, _5 E, J- l7 m
" C  |# ]# u, U3 {  A6 N& P3 D#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)6 G4 A! o5 W7 g5 _6 j0 F' a8 V
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)' ~4 K, f5 B3 |" A4 J6 a, I! \
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)( Q9 M6 f( l+ z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
  U+ S# D) |: I& K  P% J8 @! l( u7 u1 j
/* assign the tl som board LED-GPIOs*/( _8 E2 X1 U4 c6 o. J$ S4 x$ P
static const short da850_evm_tl_user_led_pins[] = {, |7 ^: V/ ~  Y9 E, D9 |5 W8 \& e
        /* These pins are definition at <mach/mux.h> file */) m& e4 Q2 ~, f8 m5 Y
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,7 _- _& i* x, r' B9 e
        -1
, s3 M& B, U* t4 Z5 r) z};
+ S- p# ]: N+ O. r8 A$ K) x- E
0 e2 Z- g5 \$ B, sstatic struct gpio_led da850_evm_tl_leds[] = {
4 M6 p& N3 m( j        {
  p9 u  G9 K0 o3 l* ?3 M# m# Z                .active_low = 0,
; [% }' ~8 a- J# Z- @4 P                .gpio = DA850_USER_LED0,
  w% w( y4 V8 s; H9 `8 L6 ~                .name = "user_led0",
. U3 l/ V  z. C9 M( @                .default_trigger = "default-on",# @( Q4 g) M7 a2 a% @& [  M
        }," t7 [% I+ u4 {% H5 u$ l
        {
- p- a3 m( `# m; V8 ]4 j                .active_low = 0,$ j# B% ?5 N, Y5 W4 p
                .gpio = DA850_USER_LED1,: Y; P& g' m" L/ m! h7 S6 S% U, [
                .name = "user_led1",* l4 U# s4 `6 Y& n; }7 a0 I
                .default_trigger = "default-on",
" v+ u& ?- \) ~        },' Z( ?# G! g: O( E' E6 a, T/ i7 ?
        {, o1 s8 ^8 e9 z' N: p0 M3 h+ I
                .active_low = 0,4 t% S+ E7 q4 c' `0 ~) z8 f
                .gpio = DA850_USER_LED2,
2 C) |2 M" a, A5 U' \( Z                .name = "user_led2",' d* O3 ?% n( M; d' t- V' v2 \
                .default_trigger = "default-on",
& l! \4 C% x3 d        },$ y" g/ `) h5 v- Q0 P6 x. p" x
        {
  j0 V) R3 W  o# c+ c9 _9 h                .active_low = 0,4 Y" w' t( f; R  L2 e
                .gpio = DA850_USER_LED3,( P# t2 O7 @, u2 c' A7 e
                .name = "user_led3",
4 M! ^+ h% }4 R4 m( ]' g6 y6 A6 i8 R                .default_trigger = "default-on",
8 t+ o" ?' }8 J% I! N( n        },
; H5 ?& J0 d+ z6 U( @};' K0 E" x+ X* m8 j# C' |4 s1 |

4 b6 q! D$ R, ]/ Ystatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
3 K& r, R  P# m! \. s        .leds = da850_evm_tl_leds,  v5 }" u* z0 f8 }4 a4 t
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
: _% w3 l7 @0 U9 `9 I};8 Q- ~' |  {! W& \; {

  K- z3 j- Z7 W' zstatic void led_dev_release(struct device *dev). ]" \. g; T' j" k$ M. e+ A
{
+ `5 y7 b* l- W2 ^2 f1 l, X# @};- Z2 I$ }. z0 J  l: \
) n* n$ O- F. q0 B% u
static struct platform_device da850_evm_tl_leds_device = {- Y/ t% z/ x6 l) c3 _9 q$ @
        .name                = "leds-gpio",) \' v; ~4 W# A$ b' v
        .id                = 1,$ {: R" q- L" X- T2 n$ m' n
        .dev = {: m9 I( o$ c1 e
                .platform_data = &da850_evm_tl_leds_pdata,
7 a3 ^0 s/ _2 k% T                .release = led_dev_release,4 f) ]+ r: w; e
        }7 ], J! s0 r; e
};( A0 B- ?* p7 G, X  P
- K9 p: u0 X0 d
static int __init led_platform_init(void)9 d1 P0 W0 r; `9 z
{
% ~2 x& n6 D) P( R) w        int ret;
0 z% K+ g2 U9 ~8 H3 b- h#if 0
7 f) M2 I9 o' B) R) F7 }& ~* v6 @8 c        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- ^' N  A  c4 M) ~        if (ret); |: d( Y9 Q1 `& G5 V
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
* ]% v" `7 r6 y/ J                                "%d\n", ret);7 G* I2 l9 f; {, s
#endif$ T6 O9 E4 c# V4 F
        ret = platform_device_register(&da850_evm_tl_leds_device);3 g$ m  u) o$ v1 t9 [
        if (ret)
1 Y0 u/ g5 j8 p/ h( `                pr_warning("Could not register som GPIO expander LEDS");8 U! d4 g) N. v. _! c
        else0 @- ?9 s9 {$ {& F: j, f- v
                printk(KERN_INFO "LED register sucessful!\n");
7 t* m' A5 S5 Z1 W
" O7 ?1 T+ `1 L, p        return ret;
$ c2 W% [. _6 p8 d7 t}1 e% n5 b  `1 m( ^- N1 J& R6 q5 \
& {) s; [4 J( @6 N; g7 b  {
static void __exit led_platform_exit(void)5 a! U) b) d( s0 W3 z7 S
{
5 I7 v# q; x7 i8 u7 C' m& a3 S        platform_device_unregister(&da850_evm_tl_leds_device);
9 H0 [8 h9 y6 ~- q4 o) ]  L
( Z. g: E1 k+ }1 |6 K        printk(KERN_INFO "LED unregister!\n");8 `' L7 w5 V* i) C/ c7 J* u" m- H
}- e, ], s* m; m+ U' K
6 q% n6 q: u# t7 p& j" ?
module_init(led_platform_init);
$ s) B  \2 D# ?6 D% mmodule_exit(led_platform_exit);
( x" A' p' u( z4 |3 x& l; P1 v2 }3 i3 M3 ~6 S5 r/ Z
MODULE_DESCRIPTION("Led platform driver");
8 u  t/ r# J$ V+ W# A# d: iMODULE_AUTHOR("Tronlong");
8 w7 z, ~: ~3 B& F* O$ WMODULE_LICENSE("GPL");
+ y% [6 X" i+ `6 I2 s" e. C
% D* ^: j4 I! Q5 S5 c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-17 20:01 , Processed in 0.045276 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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