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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。( B+ g5 ~9 _) U. j
#include <linux/init.h>
& _2 N( S% F. H$ E#include <linux/module.h>
. k4 L. M  Q' e; D( U; ?#include <linux/kernel.h>
8 I# J" I9 F8 K#include <linux/types.h>% Z( v& z. F9 e  J( ^. [; o
#include <linux/gpio.h>
# J, s  ^$ ^8 X. Q4 @- \+ w$ [1 o#include <linux/leds.h>: W: T) ~% I2 x9 [
#include <linux/platform_device.h>) I1 k# C# \& z3 h

) {' [4 J0 z* g# w! i7 i#include <asm/mach-types.h>/ v3 u4 L0 w1 A2 c2 b
#include <asm/mach/arch.h>
7 z8 r. n5 K" a- p#include <mach/da8xx.h>
/ W( o, A2 e% C' \#include <mach/mux.h>
0 F3 h+ l+ o, w4 T8 N) }- p. B3 U. I: `! H) D1 B7 g& _; `1 {4 M
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
* [1 ~& H+ J8 u: u, G0 A5 _#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
( n  t- ]$ \' G4 C# Y0 _#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 I+ Q& H3 F, g1 h
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
+ c. o8 ]3 k8 A& |! Y+ k8 O4 e/ X7 D: A/ K1 ~+ f# @) C0 L7 L
/* assign the tl som board LED-GPIOs*/
4 u( \# [4 j7 ~. [+ J6 B1 @: hstatic const short da850_evm_tl_user_led_pins[] = {
" Z7 c! A1 r9 p8 f) j3 m+ K- f        /* These pins are definition at <mach/mux.h> file */
( e& g; N2 h" y* G$ `. _, |        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
0 w% _6 X, K3 M) q+ h, t" {6 r        -1
/ J$ R1 x1 ^' \9 _};# F1 h) R3 g$ h1 [/ h

' J% Z8 U: z5 e6 Vstatic struct gpio_led da850_evm_tl_leds[] = {
# x8 `% Q+ N7 Z4 n7 M0 K) q        {# r. U7 F9 K4 X8 ^$ A
                .active_low = 0,- l! b8 z0 b/ P
                .gpio = DA850_USER_LED0,, ^( q( e! G# H, p& [9 F
                .name = "user_led0",
6 {/ i0 C" q: N1 Y2 |% U                .default_trigger = "default-on",
9 U& o+ w2 M0 U. Z        },6 l" h% {1 u0 w! W) t
        {& V  \) m. n& C
                .active_low = 0,
8 b1 D0 h" N4 [2 ?  z5 |, ^                .gpio = DA850_USER_LED1,: v0 ?; w. I8 }2 t2 J4 V* e
                .name = "user_led1",2 t5 u- q7 h  H. ?
                .default_trigger = "default-on",* [" l; e% B8 M  S3 D" c0 n
        },
( E& s1 j4 ?% f0 C0 \) q) B        {
. c; G4 W/ O9 x- S( V                .active_low = 0,( ~# e' F* L  [
                .gpio = DA850_USER_LED2,
% i5 }* _) I. n3 Y                .name = "user_led2",
: h$ Q: @2 M9 z7 K4 |                .default_trigger = "default-on",
2 R" E. M- R3 B# N$ J0 j6 s        },
, ^# R# e4 e" V* }+ y4 r        {
3 |* k7 c2 p7 I: E                .active_low = 0,
, f! o' g+ g: h  l. R                .gpio = DA850_USER_LED3,$ Q5 w2 ^0 ]' C1 d7 T3 {. K
                .name = "user_led3",
2 k# U; Z$ U2 O. J7 q                .default_trigger = "default-on",6 x' {' ~& y+ m/ c7 X5 ^- [( c: [
        },
- A! d. N& |) q* k: N+ s, U};
% D- F, k' ^- V" ]$ C8 I: \
9 |, _3 q+ d) O8 D$ ?% jstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* Z8 e7 u6 @' p$ _. z        .leds = da850_evm_tl_leds,0 U6 h6 |, I/ [) r; p9 K
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
: S6 d  ]1 t: H, z2 H* |7 |7 Z};9 [. N' |" ~) X5 W3 s* B5 V

5 M/ {+ ]! C! w$ Y$ D0 p% O' Z" xstatic void led_dev_release(struct device *dev)! C, M, v  {4 M& [& _2 F3 p
{
0 E& D( Y$ E6 E5 I7 W6 s' K};
, o( E0 X) S, G. z' c
4 J! v5 O/ f( D# jstatic struct platform_device da850_evm_tl_leds_device = {
4 p, t4 ~; m! t        .name                = "leds-gpio",
2 }$ {1 `3 k2 P- O        .id                = 1,
9 ~& N9 C8 J6 _8 n+ a+ N        .dev = {
/ P+ n3 B: X- j5 y8 W1 a1 N- d! T                .platform_data = &da850_evm_tl_leds_pdata,! f8 \; G; o1 M
                .release = led_dev_release,
3 P1 S1 h6 L0 _* \2 @# p        }
$ I0 S2 K" i1 @; ]4 N& O5 {};
9 j( ?' Z6 `# J- m
7 H: X' a( j+ {4 M: fstatic int __init led_platform_init(void)
% G% K& s+ z* q+ r{
9 M3 l& f. \5 K7 g0 ?/ _        int ret;; T7 n2 E0 D0 r
#if 0
- Z: t" h1 a( v. b* ]! g$ [        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
, v. K: r" ~4 m! m' I- `/ X        if (ret)
: \8 K  q! J) X                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"; T1 a1 i7 [3 N8 X
                                "%d\n", ret);# u) ~! K7 h  f
#endif
- M; z; H+ m; z3 A7 h( {        ret = platform_device_register(&da850_evm_tl_leds_device);) s, c! v4 t3 Z' Z0 G9 C- t. x
        if (ret)
2 y6 u- h# U* J$ T                pr_warning("Could not register som GPIO expander LEDS");
' h4 P3 J4 _, {/ ]3 |* M        else/ m8 D3 X; F. U  t
                printk(KERN_INFO "LED register sucessful!\n");
3 V4 R% d* `; L9 k
9 K9 v/ B- w. `$ p. d5 V/ X        return ret;$ ^/ l! ?+ u8 m$ j4 y% v! E: `/ H
}% Y) m3 a& @& ?/ S* X! o, U

; w# ?/ c2 t4 p$ G' v- B+ Ustatic void __exit led_platform_exit(void)
% m- m% ?! M- b1 K5 y{7 k" E8 N: H7 N* o
        platform_device_unregister(&da850_evm_tl_leds_device);$ ~2 t' @8 _. x: G1 q
) j$ V0 G( e- d4 q" Y
        printk(KERN_INFO "LED unregister!\n");
5 \/ V8 I: S% S9 T: k}. G7 k2 R9 }6 }- U( r8 M) m

; _6 M4 m6 }1 d. c8 m0 i6 Z' G% Y- Dmodule_init(led_platform_init);7 r; _2 ~0 O( L1 @$ K, Q3 J, O3 [
module_exit(led_platform_exit);9 A. F- n+ Y' y
) P9 a4 m1 g% }- u2 l# |
MODULE_DESCRIPTION("Led platform driver");
- p1 Y2 g# ]6 t/ m& _MODULE_AUTHOR("Tronlong");8 j, V  j2 f/ B
MODULE_LICENSE("GPL");
! s) }2 R7 T2 r! d/ f7 B9 I! F: p, J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-24 21:42 , Processed in 0.042425 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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