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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
, N; V0 A  M7 t. x* b1 c#include <linux/init.h>
5 Q+ P' e8 |) F/ G0 a) F7 ~#include <linux/module.h>
$ U& W) C+ n; j; d+ y#include <linux/kernel.h>/ L& l) k. P, l0 M
#include <linux/types.h>
  B8 k: j" {* U9 {6 Q, u5 I2 K#include <linux/gpio.h>; ?# p7 W5 W8 h6 C
#include <linux/leds.h>
. e* s# [" e6 Z5 B+ D' M1 }5 b2 ]4 \#include <linux/platform_device.h>5 f" ^" Z4 D- S' E* g7 T0 o
5 q( j: g$ w" q% E8 h
#include <asm/mach-types.h># q8 ?7 Y% a# q6 m3 e
#include <asm/mach/arch.h>! @* a2 j. l# }  u
#include <mach/da8xx.h>
/ a9 H$ ~; u2 V6 b#include <mach/mux.h>
( i+ ?  s+ u0 @$ K  t2 k; H2 M( S0 a0 C: q) a% I
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
. Y5 D% @* P: L4 T* B# e0 h#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
: y& K4 G8 ]& m# e* T# }  i5 s1 {#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)) m. v' W+ U# ?8 M
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
; }4 U( S" L$ \2 ]& L3 k: P
( X- k' u4 B3 G5 \4 Z& ]+ E/* assign the tl som board LED-GPIOs*/, G! B& z/ }1 ~, [" J
static const short da850_evm_tl_user_led_pins[] = {* C: ]- c* g* p! @( e; p5 u
        /* These pins are definition at <mach/mux.h> file */" R0 G: H& l* j+ y2 B
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
  M6 m) j! l  _8 X5 e        -1
0 R0 Q9 W& p2 \0 K+ n: n( A" ~};2 K- z- {5 T( z: D' Q: d

4 }' h, A! N4 wstatic struct gpio_led da850_evm_tl_leds[] = {) l' D3 b: Z- a: S; o, q
        {
8 e& ~" v3 k( f5 S4 R% b                .active_low = 0,
% _* `$ y! `7 Z5 k$ s* Z6 V                .gpio = DA850_USER_LED0,
  k+ T3 t/ q% g9 q, C. I                .name = "user_led0",
: O# B& @& }) f) u5 h7 M                .default_trigger = "default-on",+ `  N! m8 Q  w; x9 B# b7 \: _
        },0 D* s$ H8 ^! }" Y
        {/ e8 I2 {7 @/ z; |% X! G
                .active_low = 0,
# F, Y- k* F5 ~5 z9 {                .gpio = DA850_USER_LED1,2 H0 \. H, e0 U. V) b! ^
                .name = "user_led1",
: U% o* e8 P" ]3 S& W) d; \/ s; a                .default_trigger = "default-on",8 G  K6 h  G9 U" k
        },7 j: K& L1 x/ h5 D3 |
        {4 f0 d5 ~" h2 u
                .active_low = 0,
* x4 p% k3 u/ p( _: w; ^                .gpio = DA850_USER_LED2,4 |2 K& E4 ?! G+ \2 e. f. }( e
                .name = "user_led2",
( V, `8 ^1 u% C4 B                .default_trigger = "default-on",
4 v' w! j7 @  u& `        },  \! ~7 C8 M# f6 O1 D4 f
        {
! N2 Z7 A! K7 [8 l# D                .active_low = 0,
( [3 i3 h+ i- ^) _0 b                .gpio = DA850_USER_LED3,4 f; i- e# e3 b; ?  j' j
                .name = "user_led3",; }( H4 I2 ]/ N7 g, I' c
                .default_trigger = "default-on",; B# K5 d$ c1 a# t3 f- E
        },' w' U) V( y, t" X' C% l
};
$ ]6 r7 C, N  ]6 ~2 t8 n+ i" N+ k& ]/ ^8 M, s/ g6 ~, O
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {. m* u" U* O3 R; ]' F- J# d
        .leds = da850_evm_tl_leds,, K' s3 m% q/ M4 Y2 d$ }
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
( t+ Q8 i5 ^' C) I% x/ q0 H};* u4 B' Y3 o! l( r

1 B1 [1 x+ _+ H9 Sstatic void led_dev_release(struct device *dev)
# a& d$ [* d/ o/ `; B; q3 H$ l; E6 Z{
. l8 w- t  B% d, @( m) M};" P9 f+ v+ Y9 q- b
4 z8 t8 d0 O( h( Y8 H: i; c
static struct platform_device da850_evm_tl_leds_device = {* W8 |  ~4 I2 _6 w0 T. i- L9 q
        .name                = "leds-gpio",4 c7 p+ k, Y; H" W; D/ f9 y
        .id                = 1,
7 ]% p3 X% M' X. I        .dev = {2 i. A% T: h( L
                .platform_data = &da850_evm_tl_leds_pdata,
% y7 O. j. B' N3 V* d# B/ g4 f                .release = led_dev_release,, R# _1 F3 J. z6 Q
        }
8 H+ Q: A( B6 b9 i* Q2 ^  ]$ ~, x};
2 c. W& E9 \7 B, }
3 g0 D# i) w. C4 y8 X# Q3 jstatic int __init led_platform_init(void)
9 E$ b+ V5 z: G1 V* a7 I{' V: N. p! a( W9 g
        int ret;- O3 \) `4 Q- \4 x
#if 0
8 t- W; r5 S! v+ K        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
  y. |% q1 n1 E        if (ret)
- H/ E# C. c' V- H                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"* C$ X9 y( d7 n9 `1 c( j' x
                                "%d\n", ret);  C. F/ G5 z0 |3 O. t- q
#endif5 L( Z: [9 T& p5 h$ r3 k  `
        ret = platform_device_register(&da850_evm_tl_leds_device);
- m5 Z# E/ Z4 ]8 c" k6 O2 j( z5 T        if (ret). U" a. X6 m) f, R- z, [) k5 V
                pr_warning("Could not register som GPIO expander LEDS");
. T2 @* J6 O! _6 _        else
0 S. b, ~. Y' H6 c% a                printk(KERN_INFO "LED register sucessful!\n");) s$ y, D; m7 A0 d. j; s9 d9 e2 l# @1 ^: _

) K, z3 J4 G* I5 |9 B        return ret;- Y1 e- j2 D& f4 u* P' c9 b
}+ d% A& T% y4 l# `* |
8 Z3 Y8 r: e- J1 c2 F  Z' `
static void __exit led_platform_exit(void); ?' p2 W1 h. H- d; V6 [0 B
{
$ B3 r# G5 u1 D  ?7 ^& B9 y        platform_device_unregister(&da850_evm_tl_leds_device);2 j( m$ F0 ]4 v; w3 g

% S+ @  L9 V. S8 A3 z& t        printk(KERN_INFO "LED unregister!\n");
9 d' V* p; L; x" e! c/ H* z) V}
* `) l0 m5 d3 t' V! {
0 X3 {( |8 G8 m  q$ \$ Omodule_init(led_platform_init);3 p0 X3 K0 g8 H+ z' M& k- U
module_exit(led_platform_exit);# w2 E- e" w* L% ^/ j8 w

6 j7 R' [5 s6 l5 nMODULE_DESCRIPTION("Led platform driver");/ F6 R+ L4 `' d5 d
MODULE_AUTHOR("Tronlong");
# x0 F. {0 r* g+ i+ [0 JMODULE_LICENSE("GPL");% K7 m! J1 v  E  m. T& R. {  L

& z/ c6 S% V6 H+ q$ k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-26 14:29 , Processed in 0.040802 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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