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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。9 T1 `; J" g. b" b5 r$ @
#include <linux/init.h>
/ O6 k1 I9 _( D0 S. l" I#include <linux/module.h>/ p$ \( z8 g4 E! T
#include <linux/kernel.h>
# Q# L2 B8 Q; Q. c  ~+ ^/ k( D#include <linux/types.h>" v0 x1 ]; a, N, [. L  s/ h) C
#include <linux/gpio.h>
: B+ |# E2 H8 G" t  M#include <linux/leds.h>' ]% N% B5 R5 Q" q# B/ T
#include <linux/platform_device.h>
0 H, D# n8 ~- d  G/ l( |. b" I, x* T* K
#include <asm/mach-types.h>4 n/ y& b4 E$ O- W
#include <asm/mach/arch.h>2 O& a. b7 U$ }, {. [7 B& S7 @
#include <mach/da8xx.h>3 D9 W+ I8 V& h+ [# N
#include <mach/mux.h>: A0 q7 ?$ f7 P$ ]
/ c( D6 E7 u! J" P
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
( h) X8 g% R0 U% c#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)4 q, z$ S* K+ q# ~6 C* h# G! w. Y
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
- q6 x6 @. X4 A& ?# X4 c#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 ?- R; q2 h; T) t- p

% b! {6 B! @' C' v( `5 q0 Z/* assign the tl som board LED-GPIOs*/
  M6 j5 Z' A) y+ Tstatic const short da850_evm_tl_user_led_pins[] = {
( q1 }1 F8 S0 N4 {2 B9 W8 Q        /* These pins are definition at <mach/mux.h> file */- \% U2 t+ r5 k0 _
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
4 c, i% k2 i( P/ b! H+ ^0 ~        -1
4 H2 E; b, `1 S& V};
/ l8 A* C% \  ^
. L# \7 P  X5 z( f" Tstatic struct gpio_led da850_evm_tl_leds[] = {) m# K! D6 b& j
        {8 `8 p2 X( ]. S- \+ l, I6 a
                .active_low = 0,' T' ~( m% p- i$ A3 y
                .gpio = DA850_USER_LED0,
6 N6 T) k: ]0 P: `: D: X1 V                .name = "user_led0",* C$ T: z6 ~  }, Z7 u5 y3 V& k& |
                .default_trigger = "default-on",  k' F9 |& u. p4 P
        },$ l! Y- z! `, T: C" t
        {
1 `7 {8 Q9 \6 R3 z9 x                .active_low = 0,2 J: K9 {: [; Q  K* w8 o
                .gpio = DA850_USER_LED1,
; y; W% }5 `! m7 r6 A                .name = "user_led1",$ A& w+ x+ T5 q% `* z! k
                .default_trigger = "default-on",
! ~% K# m* h) P        },
( P: X+ J" u: d' g& F  a$ N        {  b! T. s/ |1 ?' Q: i* z9 p* H0 p
                .active_low = 0,
) A; L- e+ e  B                .gpio = DA850_USER_LED2,
: q* d8 Y1 s$ x& c/ d                .name = "user_led2",
; K% {3 g( _. Z& K0 [                .default_trigger = "default-on",
/ C* x9 R: l8 p9 Z        },
4 A& m  ^+ p8 ]) Q: T        {( X2 v! R: C8 C2 M3 b. a' o1 Z
                .active_low = 0,
2 u% T. x6 W4 h5 K8 |5 [2 L/ {                .gpio = DA850_USER_LED3,
4 F9 ?0 V% F2 Q' t( R6 `1 i                .name = "user_led3",4 [9 X0 Q8 y6 O5 T
                .default_trigger = "default-on",1 Z( N  x' D% N7 F7 {* W0 L
        },
% _, _. H; G; w* x};7 P  n5 L  u: b  a- T

9 U5 U( q; T/ B( R2 U. cstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {  q8 A  K, g+ v/ I( n) Y6 E$ |0 R
        .leds = da850_evm_tl_leds,
4 C' B. k! Z  I, g1 d( `        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
5 R& D- M* d5 D5 M};
  J; ^( k: P0 g; L- @
6 o$ w6 c8 n* I, f% P1 j9 P0 Ustatic void led_dev_release(struct device *dev)# t1 v* Z6 o+ U
{
! W8 C; c  H1 J' [+ z};) n) F+ K. E6 x# J- }& r

$ ^% ~" E4 u1 s! ]: r9 C/ w% ]% xstatic struct platform_device da850_evm_tl_leds_device = {# G' }' Y- I5 c* V# l$ u
        .name                = "leds-gpio",
# s3 {( x+ q- a' C# H, v3 I1 b        .id                = 1,( F0 d  k" {) \2 y
        .dev = {) B, Q' V. o! s1 m0 Y) A! ?- ^7 t
                .platform_data = &da850_evm_tl_leds_pdata,
. N0 F+ ?7 t- u" ^7 W                .release = led_dev_release,$ j) b6 Y5 Z( T7 |
        }
! Y7 ?2 B; U" v1 [9 z};* o* ?5 _; Y+ c4 x& I4 d4 B
9 I9 R" e& C4 f- ?7 p- r' R* Q  J
static int __init led_platform_init(void)
- W4 c5 D7 b! u/ D9 e9 p( U: V{
0 ?3 {5 h0 C0 Q# T        int ret;; M  Q; `( @9 U3 {
#if 0
0 ^2 {+ P6 f# h+ \% `/ G        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' {, }8 M: i4 O/ r        if (ret)
' b) J8 Q: \) v4 X5 k4 d4 A                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
9 E0 c& z$ k5 v& N5 O  M% r8 B                                "%d\n", ret);% G! W* o) M- }7 I3 ?
#endif  {# X; b& [' l. q9 T
        ret = platform_device_register(&da850_evm_tl_leds_device);! B0 [9 o0 B- z
        if (ret)
3 C' X  A# a" X                pr_warning("Could not register som GPIO expander LEDS");
& X8 h3 J* r! B8 ~        else" b7 a, N7 x; V, i
                printk(KERN_INFO "LED register sucessful!\n");, y' A' _6 U) C: G) t/ r

9 N* L! ~* |4 l  }        return ret;4 Z3 L! D; i4 C7 T3 ^" E- E
}' }5 o2 V/ U: y

! u1 i( N( W* Jstatic void __exit led_platform_exit(void)
' Z' K9 L  j8 Y* j' b{
, c. ^. [5 K8 _8 a' T1 C  x" N        platform_device_unregister(&da850_evm_tl_leds_device);
, ~5 p5 |( n3 C, Y! F2 F3 _8 B" k3 w/ l6 p& g. G4 @2 D: ~
        printk(KERN_INFO "LED unregister!\n");1 Z% y/ F( e7 j' d; I
}1 s# k) X0 ?) v* F9 m% P( D  h! ^' U7 o& e
  A  y' b( |7 f! i! F
module_init(led_platform_init);5 C0 k" G, K+ [+ r, _3 i
module_exit(led_platform_exit);
* G1 X% S; Y% P+ K
, `2 K! c9 E* m1 W8 UMODULE_DESCRIPTION("Led platform driver");
2 ~, t$ A% f" PMODULE_AUTHOR("Tronlong");
' f) m2 Y% ?( U, d$ s, [MODULE_LICENSE("GPL");
6 q' w6 v0 ]- w% O  g" `2 b* m2 o" _" S0 n  F2 X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-14 23:27 , Processed in 0.039495 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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